1. Field of the Invention
The present invention pertains to the field of user interfaces on computer controlled video display systems. More particularly, this invention relates to an efficient user interface for arranging the order of fields in one set of data so that they correspond with the specific order of fields in a second set of data for use with any application program, such as a database or a spread sheet program.
2. Background Information
Some computer application programs, such as database or spread sheet programs, require that data be arranged in a predetermined way. That arrangement may be meaningful for a particular data set. It is sometimes useful to be able to extract data from a first data set and input it into a second data set. Programs that work with given data sets sometime provide a feature wherein data from one data set may be imported into a second data set. This importation avoids unnecessary duplication of effort which would occur by entering the data into the second data set as well as the first. In addition, these importation features allow a user to control the data in one data set (e.g. insure that the data is error-free) and import the data into the second data set while maintaining the integrity of the first data set.
Importation features on existing computer programs require that the user define which fields from the first data set will be "mapped" into the second data set. The user must know the order of the fields in the first data set, and the order of the corresponding fields in the second set. This information is needed before the fields can be "mapped" from one data set to another. In a typical prior art computer system this information is generally not available to the user at the time of field correspondence between the two data sets.
Referring to FIG. 1, an example of a database is shown. Database 100 is comprised of 9 fields: Social security number 101; Name 102; Position 103; Address 104; City 105; State 106; Zip 107; Salary 108; and Party 109, in that order. Database 100 is named "Employees" and comprises records 151, 152, 153, etc. each having fields associated with 101 through 109 above. The database 100 may be represented as a text file, wherein each of the fields is separated from the others within a record by tab stops in ASCII code. Separate records may be delineated, such as 151, 152, etc. . . . in database 100 by hard carriage returns in ASCII. Employee database 100 may also be represented in another file format such as one used by a spread sheet program such as EXCEL or LOTUS, or a database program such as FILEMAKER or DBASE.
An application such as a database program, may represent fields on a CRT screen display from a database in the manner shown in FIG. 2. As shown in FIG. 2, database 200 may be represented using the following fields: Name 201; Social Security Number 202; Address 203; City 204; State 205; Zip 206; Position 207; Spouse 208; Other Dependents 209; and YTD Deductible 210, in that order. The fields 201 through 210 as shown in database 200 may represent Insurance information, for example. It may be appreciated that some of the fields shown in Insurance database 200 may correspond with some of the fields shown in Employee database 100 of FIG. 1. For instance, name 102 of Employee database 100 may correspond with the name field 201 of Insurance database 200. Likewise social security number 101 of database 100 and social security number 202 of database 200 may correspond with one another. As discussed previously, certain fields from one data set such as database 100 may be "mapped" to correspond with some of the fields in database 200. After such "mapping," an importation may be accomplished, creating a new record in the second data set for each record in the first data set and copying each field from the first data set into fields in the second data set. This "mapping" operation is discussed with reference to FIG. 3.
A prior art user interface for defining the order in which fields from one data set may be imported into another is shown as screens 300 and 310 of FIGS. 3A and 3B. This prior art user interface is representative of an interface utilized by the FILEMAKER II version 1.0 database product available from CLARIS Corporation of Santa Clara, Calif. Screen 300 shows the list of the fields in the current data set, such as Insurance database 200 in FIG. 2, in window 301. Window 302 of screen 300 will show the order in which the fields of the current database may correspond with the order of the fields in the file being imported. If button 303 is selected by moving a pointer 305 to button 303 and "depressed" using an input device, then the input order as shown on 302 is the same as the field order in the current database. The result of selecting button 303 with cursor 305 is shown as screen 310 on FIG. 3B. As shown in window 302 of FIG. 3B, the input order of the fields is the same as the list shown in window 301, the order of the fields in Insurance database 201. When the input file is imported into Insurance database 200 as defined by screen 310, they will be read in the order shown in window 302. As shown on screen 400 of FIG. 4, the first record 151 of Employee database 100 has been read in the order as defined by importation screen 310 in FIG. 3B. 400 of FIG. 4 shows the results of copying these fields in the order defined in screen 310. As can be appreciated, the field order of the input Employee database 100 is different from that of Insurance database 200. As a result the social security number 101 from record 151 of FIG. 1 has been inserted in the name field 201 for Insurance database 200. Likewise social security number 202 of Insurance database 200 has been incorrectly matched with the name field of database 100, 102 of FIG. 1. The remainder of the fields in this record of Insurance database 200 are also incorrectly matched.
Another prior art method of mapping fields from one set of data to another is shown in FIG. 5. Instead of corresponding all of the fields from the current database with the same order of fields in the input file, a user may correspond individual fields in the input file in a particular order with those in the current database. This is accomplished in a manner shown with reference to screen 500. Window 501 of screen 500 shows the order of the field list, and individual fields are associated with a particular order by selecting each field to be corresponded in window 501. Then, the cursor 305 is pointed at button 504 by using a cursor control device and selected to copy the corresponding field name in window 501 of the input file to window 502. The process of highlighting items in window 501, and selecting the move button 504 with cursor 305 may be repeated until all of the field names or some of the field names have been copied from window 501 to window 502, showing a particular order. The result of such moving is shown in screen 600 of FIG. 6. Window 502 now reflects the order of the fields in the Employee database 100 as shown in FIG. 1. The user may now instruct the program to "import" the information from the input file such as Employee database 100 in FIG. 1, into the current Insurance database 200 by selecting button 606 with cursor 305, indicating that all of the fields have been mapped. Then, the program will read in each of the fields from the input file in the order defined in window 502. One record which results from this importation is shown in FIG. 7 as screen 700. As is shown in screen 700, each of the fields from the input database 100 of FIG. 1 is now in its appropriate position on Insurance database 200 because their order was properly defined in window 502 of screen 600. Field 102 of record 151 from Employee database 100 is now shown in field 201 of screen 700, field 101 of record 151 is now correctly associated with field 202 of Insurance database 200, and the position field 103 of record 151 of database 100 is now correctly associated with field 203 of the record shown on screen 700 of FIG. 7. It should be noted that in order to import fields in the correct order, the user must have some prior knowledge of the order of fields in input database 100. As can be appreciated from the foregoing discussion, the process of importing files from one data set (e.g. Employees database 100 of FIG. 1 ), to another data set (e.g. Insurance database 200 of FIG. 2), is an error-prone and time consuming task which may require several iterations of the process depending on the number of fields in each database and the extent of the user's knowledge about the input and the output files. It can be appreciated that an improved method is needed for representing the fields which may be associated from one set of data to another set of data.
In light of these limitations of known systems, it is desirable to have a system which provides information to the user regarding the arrangement of data in the first data set and the second data set at the time of field order definition. This will make the job of defining the corresponding fields between the two data sets much easier.